// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package android.support.v4.widget;
import android.content.Context;
import android.graphics.Rect;
import android.os.Bundle;
import android.support.v4.view.AccessibilityDelegateCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewParentCompat;
import android.support.v4.view.accessibility.AccessibilityEventCompat;
import android.support.v4.view.accessibility.AccessibilityManagerCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
import android.support.v4.view.accessibility.AccessibilityRecordCompat;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
// Referenced classes of package android.support.v4.widget:
// o
public abstract class ExploreByTouchHelper extends AccessibilityDelegateCompat
{
public static final int INVALID_ID = 0x80000000;
private static final String b = android/view/View.getName();
private final Rect c = new Rect();
private final Rect d = new Rect();
private final Rect e = new Rect();
private final int f[] = new int[2];
private final AccessibilityManager g;
private final View h;
private o i;
private int j;
private int k;
public ExploreByTouchHelper(View view)
{
j = 0x80000000;
k = 0x80000000;
if (view == null)
{
throw new IllegalArgumentException("View may not be null");
} else
{
h = view;
g = (AccessibilityManager)view.getContext().getSystemService("accessibility");
return;
}
}
static AccessibilityNodeInfoCompat a(ExploreByTouchHelper explorebytouchhelper, int l)
{
return explorebytouchhelper.c(l);
}
private AccessibilityEvent a(int l, int i1)
{
switch (l)
{
default:
return b(l, i1);
case -1:
return b(i1);
}
}
private void a(int l)
{
if (k == l)
{
return;
} else
{
int i1 = k;
k = l;
sendEventForVirtualView(l, 128);
sendEventForVirtualView(i1, 256);
return;
}
}
private boolean a(int l, int i1, Bundle bundle)
{
switch (l)
{
default:
return b(l, i1, bundle);
case -1:
return a(i1, bundle);
}
}
private boolean a(int l, Bundle bundle)
{
return ViewCompat.performAccessibilityAction(h, l, bundle);
}
private boolean a(Rect rect)
{
if (rect == null || rect.isEmpty())
{
return false;
}
if (h.getWindowVisibility() != 0)
{
return false;
}
android.view.ViewParent viewparent;
View view;
for (viewparent = h.getParent(); viewparent instanceof View; viewparent = view.getParent())
{
view = (View)viewparent;
if (ViewCompat.getAlpha(view) <= 0.0F || view.getVisibility() != 0)
{
return false;
}
}
if (viewparent == null)
{
return false;
}
if (!h.getLocalVisibleRect(e))
{
return false;
} else
{
return rect.intersect(e);
}
}
static boolean a(ExploreByTouchHelper explorebytouchhelper, int l, int i1, Bundle bundle)
{
return explorebytouchhelper.a(l, i1, bundle);
}
private AccessibilityNodeInfoCompat b()
{
AccessibilityNodeInfoCompat accessibilitynodeinfocompat = AccessibilityNodeInfoCompat.obtain(h);
ViewCompat.onInitializeAccessibilityNodeInfo(h, accessibilitynodeinfocompat);
LinkedList linkedlist = new LinkedList();
getVisibleVirtualViews(linkedlist);
Integer integer;
for (Iterator iterator = linkedlist.iterator(); iterator.hasNext(); accessibilitynodeinfocompat.addChild(h, integer.intValue()))
{
integer = (Integer)iterator.next();
}
return accessibilitynodeinfocompat;
}
private AccessibilityEvent b(int l)
{
AccessibilityEvent accessibilityevent = AccessibilityEvent.obtain(l);
ViewCompat.onInitializeAccessibilityEvent(h, accessibilityevent);
return accessibilityevent;
}
private AccessibilityEvent b(int l, int i1)
{
AccessibilityEvent accessibilityevent = AccessibilityEvent.obtain(i1);
accessibilityevent.setEnabled(true);
accessibilityevent.setClassName(b);
onPopulateEventForVirtualView(l, accessibilityevent);
if (accessibilityevent.getText().isEmpty() && accessibilityevent.getContentDescription() == null)
{
throw new RuntimeException("Callbacks must add text or a content description in populateEventForVirtualViewId()");
} else
{
accessibilityevent.setPackageName(h.getContext().getPackageName());
AccessibilityEventCompat.asRecord(accessibilityevent).setSource(h, l);
return accessibilityevent;
}
}
private boolean b(int l, int i1, Bundle bundle)
{
switch (i1)
{
default:
return onPerformActionForVirtualView(l, i1, bundle);
case 64: // '@'
case 128:
return c(l, i1, bundle);
}
}
private AccessibilityNodeInfoCompat c(int l)
{
switch (l)
{
default:
return d(l);
case -1:
return b();
}
}
private boolean c(int l, int i1, Bundle bundle)
{
switch (i1)
{
default:
return false;
case 64: // '@'
return f(l);
case 128:
return g(l);
}
}
private AccessibilityNodeInfoCompat d(int l)
{
AccessibilityNodeInfoCompat accessibilitynodeinfocompat = AccessibilityNodeInfoCompat.obtain();
accessibilitynodeinfocompat.setEnabled(true);
accessibilitynodeinfocompat.setClassName(b);
onPopulateNodeForVirtualView(l, accessibilitynodeinfocompat);
if (accessibilitynodeinfocompat.getText() == null && accessibilitynodeinfocompat.getContentDescription() == null)
{
throw new RuntimeException("Callbacks must add text or a content description in populateNodeForVirtualViewId()");
}
accessibilitynodeinfocompat.getBoundsInParent(d);
if (d.isEmpty())
{
throw new RuntimeException("Callbacks must set parent bounds in populateNodeForVirtualViewId()");
}
int i1 = accessibilitynodeinfocompat.getActions();
if ((i1 & 0x40) != 0)
{
throw new RuntimeException("Callbacks must not add ACTION_ACCESSIBILITY_FOCUS in populateNodeForVirtualViewId()");
}
if ((i1 & 0x80) != 0)
{
throw new RuntimeException("Callbacks must not add ACTION_CLEAR_ACCESSIBILITY_FOCUS in populateNodeForVirtualViewId()");
}
accessibilitynodeinfocompat.setPackageName(h.getContext().getPackageName());
accessibilitynodeinfocompat.setSource(h, l);
accessibilitynodeinfocompat.setParent(h);
int j1;
int k1;
if (j == l)
{
accessibilitynodeinfocompat.setAccessibilityFocused(true);
accessibilitynodeinfocompat.addAction(128);
} else
{
accessibilitynodeinfocompat.setAccessibilityFocused(false);
accessibilitynodeinfocompat.addAction(64);
}
if (a(d))
{
accessibilitynodeinfocompat.setVisibleToUser(true);
accessibilitynodeinfocompat.setBoundsInParent(d);
}
h.getLocationOnScreen(f);
j1 = f[0];
k1 = f[1];
c.set(d);
c.offset(j1, k1);
accessibilitynodeinfocompat.setBoundsInScreen(c);
return accessibilitynodeinfocompat;
}
private boolean e(int l)
{
return j == l;
}
private boolean f(int l)
{
while (!g.isEnabled() || !AccessibilityManagerCompat.isTouchExplorationEnabled(g) || e(l))
{
return false;
}
j = l;
h.invalidate();
sendEventForVirtualView(l, 32768);
return true;
}
private boolean g(int l)
{
if (e(l))
{
j = 0x80000000;
h.invalidate();
sendEventForVirtualView(l, 0x10000);
return true;
} else
{
return false;
}
}
public boolean dispatchHoverEvent(MotionEvent motionevent)
{
boolean flag = true;
if (g.isEnabled() && AccessibilityManagerCompat.isTouchExplorationEnabled(g))
{
switch (motionevent.getAction())
{
case 8: // '\b'
default:
return false;
case 7: // '\007'
case 9: // '\t'
int l = getVirtualViewAt(motionevent.getX(), motionevent.getY());
a(l);
if (l == 0x80000000)
{
flag = false;
}
return flag;
case 10: // '\n'
break;
}
if (j != 0x80000000)
{
a(0x80000000);
return flag;
}
}
return false;
}
public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view)
{
if (i == null)
{
i = new o(this, null);
}
return i;
}
public int getFocusedVirtualView()
{
return j;
}
protected abstract int getVirtualViewAt(float f1, float f2);
protected abstract void getVisibleVirtualViews(List list);
public void invalidateRoot()
{
invalidateVirtualView(-1);
}
public void invalidateVirtualView(int l)
{
sendEventForVirtualView(l, 2048);
}
protected abstract boolean onPerformActionForVirtualView(int l, int i1, Bundle bundle);
protected abstract void onPopulateEventForVirtualView(int l, AccessibilityEvent accessibilityevent);
protected abstract void onPopulateNodeForVirtualView(int l, AccessibilityNodeInfoCompat accessibilitynodeinfocompat);
public boolean sendEventForVirtualView(int l, int i1)
{
android.view.ViewParent viewparent;
if (l != 0x80000000 && g.isEnabled())
{
if ((viewparent = h.getParent()) != null)
{
AccessibilityEvent accessibilityevent = a(l, i1);
return ViewParentCompat.requestSendAccessibilityEvent(viewparent, h, accessibilityevent);
}
}
return false;
}
}